package com.laisheng.interview.service;

import com.laisheng.interview.model.Notification;
import java.util.List;

/**
 * 通知服务接口，处理通知的创建、查询和状态更新等操作
 */
public interface NotificationService {
    
    /**
     * 创建通知
     * @param title 通知标题
     * @param content 通知内容
     * @param type 通知类型
     * @param accountingInfoId 关联的面试信息ID
     */
    void createNotification(String title, String content, String type, Long accountingInfoId);
    
    /**
     * 获取所有未读通知
     * @return 未读通知列表
     */
    List<Notification> getUnreadNotifications();
    
    // 获取所有通知
    List<Notification> getAllNotifications();
    
    // 标记通知为已读
    void markAsRead(Long id);
    
    // 获取未读通知数量
    int getUnreadCount();
    
    // 根据类型获取通知
    List<Notification> getNotificationsByType(String type);
    
    // 根据日期获取通知
    List<Notification> getNotificationsByDate(String date);
    
    // 批量标记通知为已读
    void markMultipleAsRead(List<Long> ids);
    
    // 标记所有通知为已读
    void markAllAsRead();
}